<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.org/ui">
<ui:composition template="/pages/template.xhtml">
	<ui:define name="titulo">
		<h:outputText value="#{msgs['titulo.lista.usuario']}" />
	</ui:define>
	<ui:define name="corpo">
		<h:form id="form">

			<p:messages id="messages" showDetail="true" autoUpdate="true"
				closable="true" />

			<p:dataTable id="tabelaUsuario" widgetVar="dataTableUser" var="usuario"
				value="#{UsuarioController.listarUsuarios}"
				filteredValue="#{UsuarioController.filtedUser}"
				emptyMessage="#{msgs['msg.form.listauser.empty']}"
				selection="#{UsuarioController.selectedUser}" selectionMode="single" >

				<p:ajax event="rowSelect" oncomplete="userDialog.show()"
					listener="#{UsuarioController.selecionou}" update=":form:dlgUser" />

				<f:facet name="header">
					<h:outputText value="Lista dos usuários" />
				</f:facet>

				<p:column style="width:2%">
					<p:rowToggler />
				</p:column>

				<p:column headerText="Nome" filterStyle="width:200px"
					filterBy="#{usuario.nome}" filterMatchMode="contains">
					<h:outputFormat value="#{usuario.nome}" />
				</p:column>

				<p:column headerText="CPF">
					<h:outputText value="#{usuario.cpf}" />

				</p:column>

				<p:column headerText="Status"
					filterOptions="#{UsuarioController.filterStatus}"
					filterBy="#{usuario.status}">
					<h:outputText converter="StatusConverter" value="#{usuario.status}" />
				</p:column>

				<p:column headerText="Perfis"
					filterOptions="#{UsuarioController.filterPerfis}"
					filterBy="#{usuario.perfis}" filterMatchMode="contains">
					<h:outputText value="#{usuario.perfis}" converter="PerfilConverter"  />
				</p:column>


				<p:rowExpansion>
					<h:panelGrid columns="2">
						<h:panelGrid columns="2" cellpadding="4" style="width:300px;"
							styleClass=" ui-widget-content grid">

							<f:facet name="header">
								<h:outputText value="Informações" />
							</f:facet>

							<h:outputText value="Status:" />
							<h:outputText converter="StatusConverter" value="#{usuario.status}" />

							<h:outputText value="Endereço:" />
							<h:outputText value="#{usuario.endereco.endCompleto}" />
							<p:column colspan="2">
								<h:commandLink action="#{UsuarioController.editar}"
									value="Editar" ajax="false">
									<f:setPropertyActionListener target="#{UsuarioController.selectedUser}"
										value="#{usuario}" />
								</h:commandLink>
								<br />
								<p:commandLink value="Excluir" oncomplete="DialogDel.show()"
									update=":form:dlgDelete">
									<f:setPropertyActionListener
										target="#{UsuarioController.selectedUser}" value="#{usuario}" />
								</p:commandLink>

							</p:column>
						</h:panelGrid>

						<h:panelGrid columns="2" cellpadding="4" style="width:300px;"
							styleClass=" ui-widget-content grid">

							<f:facet name="header">
								<h:outputText value="Atividades" />
							</f:facet>

							<h:outputText value="Status:" />
							<h:outputText converter="StatusConverter" value="#{usuario.status}" />

							<h:outputText value="Endereço:" />
							<h:outputText value="#{usuario.endereco.endCompleto}" />

						</h:panelGrid>
					</h:panelGrid>
				</p:rowExpansion>

			</p:dataTable>

			<p:dialog id="dlgUser" header="Usuario" widgetVar="userDialog"
				resizable="false" showEffect="fade" hideEffect="explode">
				<h:outputText value="#{UsuarioController.selectedUser.nome}" />
			</p:dialog>

			<p:dialog id="dlgDelete" header="Atenção" widgetVar="DialogDel"
				resizable="false" showEffect="fade" hideEffect="explode">
				<h:outputText
					value="Tem certeza que deseja deletar #{UsuarioController.selectedUser.nome} ?" />
				<br />
				<p:commandLink value="Sim" action="#{UsuarioController.excluir}"
					ajax="true" update="@form" />
				<br />
				<p:commandLink onclick="DialogDel.hide()" value="Não" />
			</p:dialog>

		</h:form>
	</ui:define>
</ui:composition>
</html>